package com.bidevalution.business.service;

import com.bidevalution.dao.entity.BeExpertInfo;
import com.bidevalution.dao.entity.BeSectionExpertInfo;

import java.util.List;

/**
 * Created by glodon on 2019-08-08.
 */
public interface BeSectionExpertInfoService {

    /**
     * 获取专家列表
     * @param sectionId
     * @return
     * @throws Exception
     */
    List<BeSectionExpertInfo> getExpertListBySectionId(String sectionId,String voteType,String submitCode) throws Exception;
    
    
    List<BeSectionExpertInfo> getAllListBySectionId(String sectionId) throws Exception;
    
    List<BeSectionExpertInfo> getListBySectionId(String sectionId,String isAvoid) throws Exception;

    /**
     * 保存专家信息
     * @param beSectionExpertInfo
     * @return
     * @throws Exception
     */
    Boolean saveExpertInfo(BeSectionExpertInfo beSectionExpertInfo,String password) throws Exception;

    /**
     * 删除专家信息
     * @param seqIds
     * @return
     * @throws Exception
     */
    Boolean deleteBeSectionExpertInfos(String seqIds) throws Exception;

    /**
     * 查询全部专家信息
     * @param sectionId 标段ID
     * @return 专家列表
     */
    List<BeSectionExpertInfo> getAllExpertListBySectionId(String sectionId);

    /**
     * 删除专家信息
     * @param seqIds seqIds
     * @param remark 删除原因
     */
    void delBeSectionExpertInfos(String seqIds, String remark);

    /**
     * 根据身份证号码查询专家基本库信息
     * @param cardNo 身份证号码
     * @return
     * @throws Exception
     */
    BeExpertInfo queryExpertInfoByCardNo(String cardNo) throws Exception;

    /**
     * querySectionExpertInfoById
     * @param seqId 主键
     * @return
     * @throws Exception
     */
    BeSectionExpertInfo querySectionExpertInfoById(String seqId) throws Exception;

    /**
     * 根据标段id和专家登录账号查询专家信息
     *
     * @param sectionId
     * @param loginName
     * @return
     */
    BeSectionExpertInfo selectByLoginName(String sectionId, String loginName);

    /**
     * 保存专家回避信息并更新回避状态
     *
     * @param beSectionExpertInfo
     * @return
     * @throws Exception
     */
    Boolean updateAvoidReason(BeSectionExpertInfo beSectionExpertInfo) throws Exception;

    /**
     * 专家是否可以进入评审
     *
     * @param sectionId
     * @param loginName
     * @return
     * @throws Exception
     */
    String isEnterReview(String sectionId, String loginName) throws Exception;

    /**
     * 获取专家身份证号md5码
     * @param sectionId
     * @return
     * @throws Exception
     */
    List<String[]> findMd5ByLoginNames(String sectionId)throws Exception;
    
    
}
